#ifndef VISUALIZATION_MSG_H_
#define VISUALIZATION_MSG_H_

#include <opencv2/opencv.hpp>

using namespace cartographer;

namespace visualization_msgs
{
struct Quaternion {
	double x;
	double y;
	double z;
	double w;
}; 	


struct Point {
	double x;
	double y;
	double z;
};

struct Pose {
	Point position;
	Quaternion orientation;
};

struct Marker {
	int trajectory_id;
	int id;
	Pose pose;
	std::vector<Point> points;
};

struct MarkerArray {
	std::vector<Marker> markers;
};

// struct SubmapArray {
// 	std::vector<Eigen::Vector3d> poses;
// 	std::vector<Eigen::Vector3d> landmarks;
// 	std::vector<Eigen::Vector3d> current_landmarks;	
// 	sensor::PointCloud point_cloud;
// 	cv::Mat frame;
// };

// struct GridArray {
// 	GridMap* current_grid = nullptr;
// 	std::vector<GridMap*> grids;
// 	cv::Mat frame;
// };

}

#endif